
# pytest fixture

"""
fixture(scope,autouse,params,ids,name):
    autouse : 代表fixture是自动执行 ，若把他的值设置为True时，就会被自动调用 ，是False的话 ，就不会被自动调用。
    scope : 代表当前标注的函数在测试用例中如何运行 ，它的值只有 ： session ,package ,module ,class ,function
        session : 在整个项目下只运行一次
        package : 在整个包下只运行一次
        module : 在整个模块下只运行一次
        class : 在整个类下只运行一次
        function : 在整个方法下只运行一次 ，它也是scope的默认值
"""
import pytest
from package_unittest.login import login


@pytest.fixture(scope='module',autouse=True)
def fixture_demo():
    print("hello world")
    yield
    print("hello python")


# case1 : 输入正确的用户名和正确的密码进行登录
def test_login_success():
    print("1")
    expect_result = 0
    actual_result = login('admin','123456').get('code')
    assert expect_result == actual_result

# case2 : 输入正确的用户名和错误的密码进行登录
def test_password_is_wrong():
    print("2")
    expect_result = 3
    actual_result = login('admin', '1234567').get('code')
    assert expect_result == actual_result


# case3 : 输入用户名和空的密码进行登录
def test_password_is_null():
    print("3")
    expect_result = 2
    actual_result = login('admin', '').get('code')
    assert expect_result == actual_result



if __name__ == '__main__':
    pytest.main(['test09_login_fixture_scope.py','-sv'])

